#include<iostream>
#include<bits/stdc++.h>
#include<math.h>
#define ll long long
using namespace std;
void solve()
{
int n;
string s;
cin>>n;
cin>>s;
int count1=0,count0=0;
for(auto i:s)
{
if(i=='1')
{count1++;}
else{
count0++;
}
}
if(count1!=count0)
{
cout<<-1<<endl;
}
else{
int l=0,r=s.size()-1;
string s2="01";
vector<int> ans;
int count=0;
while(l<r)
{
if(s[l]==s[r])
{
if(s[l]=='1')
{
s.insert(l,s2);
ans.push_back(l);
}
else{
s.insert(r+1,s2);
ans.push_back(r+1);
}
count++;
l=0;
r=s.size()-1;
}
else{
l++;
r--;
}
}
if(count>300)
{
cout<<-1<<endl;
return;
}
cout<<ans.size()<<endl;
for(auto i:ans)
{
cout<<i<<" ";
}
cout<<endl;
}
}
int main()
{
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |
130. Surrounded Regions | 129. Sum Root to Leaf Numbers |
120. Triangle | 102. Binary Tree Level Order Traversal |
96. Unique Binary Search Trees | 75. Sort Colors |
74. Search a 2D Matrix | 71. Simplify Path |
62. Unique Paths | 50. Pow(x, n) |
43. Multiply Strings | 34. Find First and Last Position of Element in Sorted Array |
33. Search in Rotated Sorted Array | 17. Letter Combinations of a Phone Number |
5. Longest Palindromic Substring | 3. Longest Substring Without Repeating Characters |
1312. Minimum Insertion Steps to Make a String Palindrome | 1092. Shortest Common Supersequence |